Method and apparatus for dynamically hiding a defect in an embedded memory

ABSTRACT

A method and apparatus is directed for dynamically hiding a defect in a memory. In one embodiment, an entry occupied mapping includes a plurality of fields each corresponding to an entry of a memory, and during the initial test procedure of the memory the field corresponding to a defective entry is marked to make it perceived as occupied and thus the defective entry will not be used hereafter. In another embodiment, pseudo entries are selected from a backup register pool or backup memory, each pseudo entry corresponds to a defective entry, and subsequent access to the defective entry is redirected to the corresponded pseudo entry.

FIELD OF THE INVENTION

[0001] The present invention relates generally to a memory and, more specifically, to a method and apparatus for dynamically hiding a defect in a memory. The invented method and apparatus is particularly useful and suitable for the chip with embedded memory.

BACKGROUND OF THE INVENTION

[0002] Memory defects can result in malfunction of a system utilizing the defective memory and abrupt shutdown without warning in advance, this not only takes the user considerable time, but also may cause unrecoverable loss. Unfortunately, there is inevitably certain percentage of memory defective during manufacture of the memory chip, usually test is performed immediately after the manufacture of the chip so that defective memory can be found and disposed. However, disposing of defective memory leads to loss, especially regrettable to dispose a chip because of minor defects for the capacity of memory is increasing and the process technology is advancing continuously. For the chip with minor defects in memory to be usable instead has disposed, redundancy scheme is proposed to replace or repair the defective memory. Typically a redundancy scheme includes four procedures, i.e., testing, analyzing, repairing and retesting, of which a series of test signal patterns are applied on the memory to detect the position of the memory failure during the first procedure, and the following analysis procedure programs and decides the optimum usage of the redundant memory. Then fuses are blown to define the connection and disconnection of the circuit in the repair procedure, and finally the repaired chip is retested to confirm that it functions correctly.

[0003] Even repairing memory by redundancy scheme can reduce memory disposing, the additional circuitry and fuses consumes considerable chip area and complicates the circuit as well as the process, which not only increases the cost but also enlarges the chip. Furthermore, such repairing spends a lot of time on testing and analyzing, which further increases time and cost. The problem due to memory defects is more severe for the chip with embedded memory because its circuitry is much more complicated than that of the stand-alone memory chip. A chip with embedded memory has a lot of circuitry around the memory, it is thus more difficult to test the memory, the tester is also more expensive and the test procedure is longer. Some schemes are proposed to improve the situation, for example in U.S. Pat. No. 5,841,784 Chan et al. disclose a method and circuit employing a switching circuit to temporarily couple an embedded memory in an integrated circuit to an interconnect pad during memory test mode period to reduce test time and cost, in U.S. Pat. No. 6,067,262 Irrinki et al. provide a redundancy analysis methodology with built-in-self-test and built-in-self-repair so that an embedded memory can be tested on a standard logic tester and detected field error related to its operation conditions, and in U.S. Pat. No. 6,073,258 Wheater teaches a method and apparatus for executing two-dimensional redundancy computation to avoid collecting failure data during test and repair procedure.

[0004] When the demand for larger embedded memory grows, the yield limitation imposed by manufacturing process is also enlarged. Although redundancy test is typically used as a functional test, this method often proves itself not enough or not applicable for larger embedded memory. For it is more difficult to design and manufacture embedded memory, the loss caused by disposing the chip due to memory defects therewith is larger, and it is thus more desired to decrease disposing chip with embedded memory. In U.S. Pat. No. 5,471,431 McClure proposes a method and structure to define a functional part from an embedded memory by blowing fuses, which minimizes the chip disposing though smaller functional memory is obtained.

[0005] However, the above-mentioned prior art schemes can only filter out the defects found upon testing, which is static or fixed repair, so that the memory is fixed once the repair procedure is completed, and the defects discovered or developed hereafter can not be excluded and eventually the chip with memory defects in such manner is still disposed. More seriously is that the defects occurred in a memory after the test procedure following the manufacture of the memory will cause the chip malfunction or system crash, thereby resulting in even larger loss. In U.S. Pat. No. 5,764,878 Kablanian suggestes a built-in-self-repair system on a chip with embedded memory, which automatically executes the procedures of testing, repairing and retesting each time the computer system is powered up, and this method can therefore dynamically repair the memory defects even it introduces large and complex circuitry into the chip and each power up of the computer system must go through those complicated and lengthy procedures. Moreover, the address table of the memory must be configured each time for Kablanian scheme, those inconveniences render this technique impractical and the system will crash once there are too many defects exceeding the capacity the redundant circuit can repair. U.S. Pat. No. 6,192,486 issued to Correale, Jr. et al. provides a memory defect steering circuit that does not carry out fuse-blowing repair, but detects and bypasses the defective memory each time the computer system boots up, then recalculates the size of the functional memory, and modifies the memory address. While this method decreases the memory size, it can dynamically exclude memory defects. However, it is inconvenient to recalculate the effective memory size and modify the memory address, and the extra circuit to modify the memory address occupies considerable chip area. Furthermore, due to the fact that its memory address is continuous, remapping the memory address cannot exclude a single memory defect, but instead starts from the next available entry following the defective entry, thus the entries before the defective memory are wasted.

SUMMARY OF THE INVENTION

[0006] The present invention is proposed to overcome the above-mentioned problems by masking memory defects, instead of repairing the defective memory by blowing fuses, and thus to avoid the lengthy procedures of testing, repairing and retesting. The invented scheme may also result in a reduction of memory volume, but makes it possible to use defective chips and not to dispose them.

[0007] One feature of the present invention is to employ a simple and straightforward method and apparatus to exclude memory defects.

[0008] One feature of the present invention is to reduce the chip disposing due to memory defects therewith.

[0009] One feature of the present invention is to dynamically exclude memory defects by discovering and hiding the memory defects each time the chip including the memory defects is powered up.

[0010] One feature of the present invention is to avoid large and redundant circuit introduced into the memory chip for excluding memory defects therewith.

[0011] One feature of the present invention is to avoid recalculating memory size and addresses resulted from the memory defects.

[0012] One feature of the present invention is to preserve the functional circuit on a chip with embedded memory.

[0013] One feature of the present invention is to avoid the necessity to repair memory.

[0014] In one embodiment of the present invention, initial test is conducted on a memory to discover defective entries, an entry occupied mapping contains a plurality of fields where each filed corresponds to an entry of the memory, and an initialization control apparatus marks the fields corresponding to defective entries to make them perceived as occupied so that the defective entries will not be accessed hereafter until the system is shut down.

[0015] In another embodiment of the present invention, there are a backup memory or backup register pool and an error entry recorder/controller to record error entries and pick up a pseudo entry from the backup memory or backup register pool for corresponding to each respective error entry after the memory goes through an initial test and redirect to the corresponding pseudo entry in each access to the error entry subsequently.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] These and other objects, features and advantages of the present invention will become apparent to those skilled in the art upon consideration of the following description of the preferred embodiments of the present invention taken in conjunction with the accompanying drawings, in which:

[0017]FIG. 1 shows the first embodiment apparatus according to the present invention;

[0018]FIG. 2 is the diagram to illustrate an operation flow of the apparatus in FIG. 1;

[0019]FIG. 3 shows the second embodiment apparatus according to the present invention;

[0020]FIG. 4 is the diagram to illustrate an operation flow of the apparatus in FIG. 3; and

[0021]FIG. 5 is an embodiment circuit for an error entry controller.

DETAILED DESCRIPTION OF THE INVENTION

[0022] A method and apparatus is disclosed to handle defects in a memory, especially in a memory embedded in a chip, from a different point of view, by which the memory defects are hided so that it looks as used to be, instead of repairing the memory by fuses or dealing the memory size, thereby the user does not know that the memory is defective. The method detects the locations of defective entries by the test procedure already scheduled during a system boot-up, without introducing additional test procedure as well as repair and retest procedures, thus it is not necessary to spend lengthy processing time. Furthermore, only simple apparatus is used for marking or recording memory defects, there is thus no need to include complex processing circuit. Though it may thus results in memory size reduction in this manner, the invented method and apparatus makes the chip with defective memory usable instead of being disposed, and it dynamically excludes the defective entries in the memory so as to avoid system malfunction or crash.

[0023]FIG. 1 shows the schematic diagram of the first embodiment according to the present invention, where an embedded memory 100 has N entries, numbered from 1, 2, . . . , N, and as is known, an entry occupied mapping 200 is used to indicate whether the embedded memory 100 is vacant or occupied, of which the number of the fields in the entry occupied mapping 200 is the same as the size of the embedded memory 100 and is N herewith, and each field of the entry occupied mapping 200 corresponds to an entry, for instance the first field 210 corresponds to entry 110, the second field 220 corresponds to entry 120, and the Nth field 230 corresponds to the last entry 130. The content of the field represents whether its corresponded entry is vacant or occupied, as shown in this figure, the content of the first field 210 is “1”, representing that its corresponded entry 100 is already occupied, while the contents of the second field 220 and the last field 230 are both “0”, representing that their respective corresponded entries 120 and 130 are vacant. To avoid possible confusion, the rest circuit on the chip with the embedded memory 100 is not shown in this figure. As in a general computer system, upon start up the system automatically tests the embedded memory 100 during the initialization procedure and the locations of defective entries can be discovered, this embodiment circuit has an initialization control apparatus 300 that only includes simple control logic and can be implemented in hardware or software, either built in the chip with the embedded memory 100 or external to the chip. During the initialization procedure, the initialization control apparatus 300 marks the fields of the entry occupied mapping 200 that correspond to the defective entries, as shown in this figure, the first entry 110 of the embedded memory 100 fails in the test, thus the initialization control apparatus 300 writes a “1” into its corresponding field 210 of the entry occupied mapping 200 to indicate that the entry 110 has been occupied, so that the first entry 110 of the embedded memory 100 will no longer be accessed during the subsequent operations, that is, the entry 110 is hidden right after the initialization. Occupation indication is written to appropriate fields of the entry occupied mapping 200 by the initialization control apparatus 300 during the initialization procedure as mentioned above, and thus the defective entries are hidden. This method is simple and fast, and does not need to be verified again, neither does it need complicated circuit or processing. Though hiding the defective entries reduces the effective size of the embedded memory 100, it makes the chip with defects usable instead of being disposed. Further, this scheme dynamically excludes the defective entries based on the updated information upon each start up of the system and prevents the system from malfunction or crash due to the defective entries that develops after the chip is used.

[0024] The operation flow of the circuit shown in FIG. 1 is shown in FIG. 2, in step S10 the system is turned on or reset, and the chip with the embedded memory 100 is also activated in this phase, as is known, the system conducts test on the embedded memory 100 in the initialization procedure, which includes tree steps, in step S12 the system writes a known data to an entry, in step S14 reads data from that entry, and then in step 16 compares the read data with the written data. In step 18, if the read data and the written data match, the entry under test is functional, and in step S22, if all entries complete the test, it enters another procedure, otherwise it goes back to step 12 to test other entries. On the other hand, if it finds the entry error in step S18, that is the read data is different from the written data, the entry is defective and it enters step 20 to mark the entry as occupied in the manner as shown in FIG. 1, the initialization control apparatus 300 writes a “1” in the first field 201 of the entry occupied mapping 200 to indicate that its corresponded entry 110 is defective. The aforementioned steps are repeated until all entries are tested.

[0025] As shown in FIG. 1, the defective entry 110 of the embedded memory 100 is marked as occupied by the first field 210 of the entry occupied mapping 200, the entry 110 will not be accessed afterwards until the system is shut down, since the entry 110 is hidden during the system initialization. Each time the system is started up, the aforementioned procedure is executed automatically, so the invented method hides defective entries dynamically, and the hidden entries in the next system start up may not be the same as those hidden in this system start up. In this embodiment, though dynamical defective entry hiding reduces the effective size of the memory, the chip with defects needs not to be disposed, and the defective entries cannot cause system malfunction or crash. Since this method directly hides the defective entries, there is no need to recalculate the effective memory size, or to modify the memory addresses.

[0026] The schematic diagram of the second embodiment according to the present invention is shown in FIG. 3, and as in the first embodiment, the apparatus herewith includes an embedded memory 100 and its occupied entry mapping 200, what is different from the previous embodiment is that this apparatus has a backup register pool 400 and an error entry recorder/controller 500. The backup register pool 400 is a set of pseudo entries, each of them has the same size as that of an entry of the embedded memory 100. As in the aforementioned procedure, when the system is started up the embedded memory 100 is automatically tested during the initialization procedure and the defective entries are located. Further, the error entry recorder/controller 500 records the addresses of the error entries in the embedded memory 100 and selects the same number of pseudo entries from the backup register pool 400 for substitution for the error entries so that the subsequent access to any error entry is redirected to the pseudo entry corresponding to the desired error entry. For example, as shown in this figure, the first entry 110 of the embedded memory 100 fails in the test, the error entry recorder/controller 500 selects a pseudo entry 410 from the backup register pool to substitute for the error entry 110, and in each subsequent access to the entry 110, the system is redirected to the pseudo entry 410. Different from prior art schemes, this embodiment apparatus does not blow the fuses to repair the memory, thus the memory circuit is left unaltered, and the procedure of verifying for the repair is not necessary. In particular, the error entries are hidden and the accesses to the error entries are redirected to pseudo entries. Moreover, this method also dynamically hides defective entries, upon each power on or reset the process of recording and configuration is repeated once, and the relation between pseudo entries selected from the backup register pool 400 and the error entries next time may be different from that of this time. In other embodiment, a backup memory can be employed to replace the backup register pool 400.

[0027] The same as in the first embodiment, the error recorder/controller 500 can be implemented in either hardware or software, and the backup register pool 400 and the error recorder/controller 500 can be built in or external to the chip with the embedded memory 100.

[0028]FIG. 4 provides an operation flow of the apparatus shown in FIG. 3, in step S50 the system is powered on or reset, and the chip with the embedded memory 100 is also activated in this phase. As in a usual procedure, the system conducts test on the embedded memory 100 in the initialization procedure, in step S52 a set of test signal patterns is written to the memory 100, then in step S54 data is read back from the embedded memory 100, in step S56 the read data is compared with the written pattern, and in step S58, the embedded memory 100 is determined properly functional if the read and written data match, otherwise the embedded memory 100 is defective, and the flow enters step S60 to start the configuration of the pseudo entries, meanwhile, the error entry recorder/controller 500 records the error entries, selects pseudo entries from the backup register pool 400 and assigns them corresponding to each error entry. As shown in FIG. 3, the pseudo entry 410 is selected from the backup register pool 400 to replace the defective entry 110 in the embedded memory 100 until the system is shut down. Because this method hides the error entries and redirects memory accesses, it is not necessary to calculate the effective size of the memory 100 or to calculate the memory addresses.

[0029]FIG. 5 provides an embodiment circuit for the error entry controller, in which a write signal WR connects with N AND gates, while for simplicity, only the first AND gate 511 and the last two AND gates 512 and 513 are shown in this figure, so are the other related elements, an error happening signal ERR_HAPPEN is inputted to a counter 520 which generates output O520 to N decoders 531, . . . , 532 and 533, each decoder produces an output connected to its corresponding AND gate, for instance, the output 0531 of decoder_(—)1 is sent to the AND gate 511, and each AND gate connects to respective pointer 541, . . . , 542 and 543, for instance, the first AND gate 511 is controlled by the signals WR and O531 to output signal O511 to pointer_(—)1, and the latter's output connects to comparator 551, similarly, there are N comparators in total, and each comparator connects to a corresponding pointer respectively, and the other inputs of all comparators are connected to the normal entry read/write mesa 600, the output of each comparator connects to respective counter recorder 561, . . . , 562 and 563, whose outputs count_(—)1, . . . , count_N−1, count_N are sent to overall counter recorder 585, and the outputs from all comparators simultaneously connect to an OR gate 570 to control the multiple gates from 591, 592, . . . , 593, the count 1-N is combined with the base address 580 to generate the backup register pool or memory address 700.

[0030] The above-mentioned embodiments can be combined together, where among a plurality of defective entries, some are redirected to pseudo entries by the scheme shown in FIG. 3, and the rest of the defective entries are hidden by the scheme shown in FIG. 1, for instance when the backup register pool 400 is used up, the remaining error entries are directly hidden, instead of redirected to pseudo entries.

[0031] From the above, it should be understood that the embodiments described, in regard to the drawings, are merely exemplary and that a person skilled in the art may make variations and modifications to the shown embodiments without departing from the spirit and scope of the present invention. All variations and modifications are intended to be included within the scope of the present invention as defined in the appended claims. 

What is claimed is:
 1. An apparatus for dynamically hiding a defect in a memory having a plurality of entries, said apparatus comprising: an entry occupied mapping including a plurality of fields each corresponding to one of said a plurality of entries; and an initialization control apparatus for marking a corresponding one of said a plurality of fields to represent its corresponding entry being occupied if said corresponding entry is defective.
 2. An apparatus according to claim 1, wherein said a plurality of fields each includes a one-bit register.
 3. A method for dynamically hiding a defect in a memory having a plurality of entries and an entry occupied mapping including a plurality of fields each corresponding to one of said a plurality of entries, said method comprising the steps of: testing said a plurality of entries; and marking a corresponding one of said a plurality of fields to represent its corresponding entry being occupied if said corresponding entry is defective.
 4. A method according to claim 3, further comprising the step of clearing said a plurality of fields before said testing.
 5. An apparatus for dynamically hiding a defect in a memory having a plurality of entries, said apparatus comprising: a backup register pool; and an error entry recorder/controller for recording an address of a defective entry and selecting a pseudo entry from said backup register pool for corresponding to said defective entry such that an access to said defective entry is redirected to said pseudo entry.
 6. A method for dynamically hiding a defect in a memory having a plurality of entries, said method comprising the steps of: testing said a plurality of entries; recording an address if a defective entry occurs; and selecting a pseudo entry from a backup register pool for corresponding to said defective entry such that an access to said defective entry is redirected to said pseudo entry.
 7. An apparatus for dynamically hiding a defect in a memory, said apparatus comprising: storage means for being written a mark to represent a defective entry in said memory being occupied; and hiding means for writing said mark after said defective entry is tested.
 8. An apparatus for dynamically hiding a defect in a memory, said apparatus comprising: a pseudo entry corresponding to a defective entry in said memory; and means for redirecting to said pseudo entry when said defective entry is accessed.
 9. An apparatus according to claim 8, wherein said pseudo entry is selected from a backup register pool having a plurality of entries.
 10. An apparatus according to claim 8, wherein said pseudo entry is selected from a backup memory having a plurality of entries. 